import storage from './storageManage'
import { reLoading } from '@/commponents/common/GlobalModal'
const toString = Object.prototype.toString

/**
 * 去除文字前后的空白
 *
 * @param {String} str 待处理文字
 * @returns {String} 处理完成后的文字
 */
export function trim(str: string) {
  return str.replace(/^\s*/, '').replace(/\s*$/, '')
}

/**
 * 时间格式化工具
 *
 * @param {Number | Date} time 正确的时间戳或时间对象
 * @param {String} type 时间格式，默认为YYYY-MM-DD hh:mm:ss
 * @returns {String} 格式化完成后的时间字符串
 */
export function formatDate(
  time: number | Date,
  type = 'YYYY-MM-DD hh:mm:ss'
): string {
  if (typeof time === 'number') {
    time = new Date(time)
  }
  interface Module {
    [key: string]: number
  }
  // 将当前时间中需要用到的内容都取出来
  const module: Module = {
    Y: time.getFullYear(),
    M: time.getMonth() + 1,
    D: time.getDate(),
    h: time.getHours(),
    m: time.getMinutes(),
    s: time.getSeconds(),
  }
  return type.replace(/(Y+|M+|D+|h+|m+|s+)/g, function (str) {
    return ('0' + module[str.slice(-1)]).slice(-str.length)
  })
}

export function getRandomString(length = 8) {
  return Math.random()
    .toString(36)
    .slice(2, length + 2)
}

export function getToken() {
  const token = storage.get('token')
  return token ? token : reLoading()
}
